﻿//-------------------------------------------------------------------------------------
// All Rights Reserved , Copyright (C) 2010 , Jirsoft , Ltd.
//-------------------------------------------------------------------------------------

using System;
using System.Windows.Forms;

namespace DotNet.WinForm.Sequence
{
    using DotNet.Service;
    using DotNet.Utilities;

    /// <summary>
    /// Program
    ///
    /// 修改纪录
    ///
    ///		2008.11.07 版本：1.0 DotNet 创建。
    ///
    /// 版本：1.0
    ///
    /// <author>
    ///		<name>DotNet</name>
    ///		<date>2008.11.07</date>
    /// </author>
    /// </summary>
    internal static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        private static void Main()
        {
            // 从配置文件读取数据表的设定
            // TableConfigHelper.Instance.GetConfig(Application.StartupPath + "\\SqlMap\\Common\\BasePermissionTable.xml", new BasePermissionTable());
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            // 是否检查在线状态
            BaseSystemInfo.CheckOnLine = false;

            // 是否记录日志
            BaseSystemInfo.RecordLog = true;
            BaseSystemInfo.StartupPath = Application.StartupPath;

            // BaseUserConfig.Instance.LogOnTo = "Access";
            BaseSystemInfo.AppIco = Application.StartupPath + "/Resource/App.ico";
            BaseSystemInfo.FormIco = Application.StartupPath + "/Resource/Form.ico";

            // 主应用程序集名
            BaseSystemInfo.MainAssembly = System.Reflection.Assembly.GetEntryAssembly().GetName().Name;

            // 读取配置文件
            ConfigHelper.GetConfig();

            // 多语言国际化加载
            ResourceManagerWrapper.Instance.LoadResources(Application.StartupPath + @"\Resource\Localization\");
            // 从当前指定的语言包读取信息
            AppMessage.GetLanguageResource();

            // 分级管理，按什么来计算，是否按编号计算子节点
            // BasePermissionScopeManager.GetChildrensByCode = true;

            Program.InitService(BaseSystemInfo.UserInfo);
            Application.Run(new FrmSequenceAdmin());
        }

        #region public static void InitService(BaseUserInfo userInfo) 加载服务

        /// <summary>
        /// 多线程加载服务
        /// </summary>
        public static void InitService(BaseUserInfo userInfo)
        {
            // 加载内部部门
            ClientCache.Instance.DTOrganize = null;

            // 读取配置文件
            BaseSystemInfo.Version = ConfigHelper.GetValue("Version");
            ClientCache.Instance.GetOrganizeDT(userInfo);

            // 获取权限
            // ClientCache.Instance.GetPermission(userInfo);
        }

        #endregion public static void InitService(BaseUserInfo userInfo) 加载服务
    }
}